Avatar billede proviben Novice
17. februar 2018 - 14:33 Der er 9 kommentarer og
1 løsning

PHP 5.4 --> PHP 7.0

Min hostingudbyder skifter snart til PHP 7.0, så derfor at jeg nu den udfordring at mit lille php-script, som virker helt perfekt med PHP 5.4, desværre IKKE virker med PHP 7.0. 

Er den er venlig sjæl som kan hjælpe mig lidt på vej til en løsning!?

####

<?php

$conn = mysql_connect("xxxx.xxxx.xxx", "xxx", "xxx");
mysql_select_db("xxxx_xxxx");

$sql = " SELECT * FROM vb_thread order by firstpostid DESC LIMIT 0,12 ";

$result = mysql_query($sql) or die( mysql_error() );
echo("<br>");
while ( $data = mysql_fetch_assoc($result) ) {

echo("<P><font size=\"-1\"><b>");
?>

<?

echo "{$data['postusername']}";

?>

<br>

<a href="http://www.mitwebsite.dk/forum/showthread.php?t=
<?
echo "{$data['threadid']}";
?>
">
<?
echo "{$data['title']}";
?>
</a>


<?
echo("</b><font size=\"-1\"></font>&nbsp;");

}

mysql_close();


?>
Avatar billede leif Seniormester
17. februar 2018 - 14:48 #1
1)  Ville ændre alle sql forespørgsler til mysqli

2) Hvad fejler den på ?
Avatar billede proviben Novice
17. februar 2018 - 15:20 #2
1.)

Mht. ændringer, mener du således:
###
$conn = mysqli_connect("xxxx.xxxx.xxx", "xxx", "xxx");
mysqli_select_db("xxxx_xxxx");

$sql = " SELECT * FROM vb_thread order by firstpostid DESC LIMIT 0,12 ";

$result = mysqli_query($sql) or die( mysql_error() );
echo("<br>");
while ( $data = mysqli_fetch_assoc($result) ) {
###

2.)

"Webstedet har en programmeringsfejl."
Avatar billede arne_v Ekspert
17. februar 2018 - 15:34 #3
Det hele skal vel omskrives.

mysql -> mysqli
font tag -> CSS
og formentligt mange andre ting
Avatar billede leif Seniormester
17. februar 2018 - 15:36 #4
Vedr. mysqli så start med at kig på https://www.w3schools.com/php/func_mysqli_fetch_assoc.asp
Avatar billede proviben Novice
17. februar 2018 - 16:17 #5
Tak til begge, men når jeg bruger eksemplet fra:

https://www.w3schools.com/php/func_mysqli_fetch_assoc.asp

- med følgende linie:

$sql = " SELECT * FROM vb_thread order by firstpostid DESC LIMIT 0,10 ";

- skriver den blot en enkelt post ud, også uden et klikbart link.

####
<?php
$con=mysqli_connect("","","","");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT * FROM vb_thread ORDER BY firstpostid ";
$result=mysqli_query($con,$sql);

// Associative array
$row=mysqli_fetch_assoc($result);
printf ("%s (%s)\n",$row["postusername"],$row["title"]);

// Free result set
mysqli_free_result($result);

mysqli_close($con);
?>
####
Avatar billede arne_v Ekspert
17. februar 2018 - 16:27 #6
Da der ikke er nogen loekke er det val aabenlyst at den kun kan skrive en raekke ud.

Og jeg ser ikke noget i den kode som skulle resultere i et link.
Avatar billede proviben Novice
17. februar 2018 - 16:41 #7
JA der mangler en while-løkke.

Nogle bud?
Avatar billede proviben Novice
17. februar 2018 - 17:49 #8
Jeg fik det løst ved bare at genbruge min while-løkke, uden ændringer!

Et tillægsspørgsmål: er det vigtigt at anvende "Free result set"?

// Free result set
mysqli_free_result($result);
Avatar billede leif Seniormester
17. februar 2018 - 21:50 #9
Det er pænest og på store sider ville jeg mene det er uundværligt.
Avatar billede proviben Novice
17. februar 2018 - 23:42 #10
Ok.

Jeg takker for hjælpen til en løsning og lukker hermed tråden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester