Problem med php och mysqli, hoppas att det kommer i rätt forum. Tillbaka till forumet Kolla på den här koden som du använder: Hänger med något på det du skrev, men får inte till det ändå. Har ändrat lite och skrivit så här. Tillbaka till forumet Har försökt att läsa och kolla manualen, men får fortfarande fel om jag testar som du skrev. Nu har jag ändrat och byggt om så mycket i koden, så nu gäller inte det felet som var på rad 14 längre.mysqli_fetch_row() - problem
Sitter här med min kod och ser inte var felet kan vara så jag hoppas på att någon vill tala om hur jag löser detta. Lägger upp en av de fyra filer som det handlar om, just nu är det i denna som felmeddelandet kommer.
Har kollat i de olika manualer, men får inte till det.
<html>
<head>
<title>Följ diskussionen</title>
</head>
<body>
<?php
$iid=$_GET['iid'];
$top=$_GET['top'];
$conn_id=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli="SELECT Amne,namn,epost,Inlagg,datum FROM Inlagg WHERE iid= $iid";
//$result=mysqli_exec($conn_id,$sql);
//$svamne=mysqli_result($result,"Amne");
if (empty($top)) {
$top=$iid;
}
mysqli_error($conn_id);
?>
<table border="1" width="300" cellpadding="3">
<tr><td>Ämne: <?=$svamne?></td></tr>
<tr><td><br><ul> <?=mysqli_result($result,"inlagg")?><br>
<br>
">=mysqli_result($result,"namn")?>, <?=mysqli_result($result,"datum")?>
</ul></td></tr>
</table>
<?php
$conn_id=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli="SELECT * FROM Inlagg WHERE pid= $iid ORDER BY datum DESC";
//$result=mysql_exec($conn_id,$sql);
echo "<ul>";
while ($result = mysqli_fetch_row($result)){
$svar =mysqli_result($result,"iid");
$samne =mysqli_result($result,"amne");
$snamn =mysqli_result($result,"namn");
$sdatum =mysqli_result($result,"datum");
visa_svar($svar,$samne,$snamn,$sdatum);
}
echo "</ul><hr>";
visa_form($svamne);
function visa_svar($svar,$samne,$snamn,$sdatum) {
global $top;
mysqli_error($conn_id);
?>
<li>=$samne?> av <?=$snamn?>, <?=$sdatum?></li>
<?php
$conn_id2=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli2="SELECT * FROM Inlagg WHERE pid= $svar ORDER BY datum DESC";
//$result2=mysql_exec($conn_id2,$sql2);
while(mysqli_fetch_row($result2)) {
?><ul><?php
$svar =mysqli_result($result2,"iid");
$samne =mysqli_result($result2,"amne");
$snamn =mysqli_result($result2,"namn");
$sdatum =mysqli_result($result2,"datum");
visa_svar($svar,$samne,$snamn,$sdatum);
mysqli_error($conn_id);
?></ul><?php
}
}
function visa_form($svamne){
global $iid, $top;
?> Svara:<br>
<form method="post" action="insert.php" OnSubmit="return skicka_OnClick()" name="matain">
Ämne:<br><input type="text" value="Svar: <?=$svamne?>" name="amne"><br>
Namn:<br><input type="text" name="namn"><br>
Epost:<br><input type="text" name="epost"><br>
Svar:<br><textarea name="inlagg"></textarea><br>
<input type="hidden" name="iid" value="<?=$iid?>">
<input type="hidden" name="top"value="<?=$top?>">
<br> <input type="submit" value="Skicka"> <input type="reset" value="Återställ">
<br>
</form><?php
}
?>
</p>
<script language="JavaScript">
function skicka_OnClick() {
var nam = document.matain.namn.value;
var inl = document.matain.inlagg.value;
var amn = document.matain.amne.value;
var epo = document.matain.epost.value;
if((nam.length != 0) && (inl.length != 0)&& (amn.length != 0)&&(epo.length != 0)) {
return true;
} else {
alert("Du glömde att fylla i Namn, Epost, Inlägg eller Ämne");
return false;
}
}
</script>
</body>
</html>
Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, null given in C:\wwwroot\blogg_proj\template\pro_2\forum\las.php on line 39
Det är det problemet som jag har just nu.Sv: mysqli_fetch_row() - problem
$mysqli2="SELECT * FROM Inlagg WHERE pid= $svar ORDER BY datum DESC";
//$result2=mysql_exec($conn_id2,$sql2);
while(mysqli_fetch_row($result2)) {
Du sätter $mysqli2 till SQL-satsen. Men sedan kör du aldrig SQL-satsen utan har kommenterat bort raden där det sker. Ändå försöker du använda resultatet $result2 från körningen trots att det inte har fått något värde. Dessutom sparar du inte raderna du hämtar i någon variabel utan kastar bara bort dem.
Lär dig detta enkla mönster:
$sql = "... SQL-sats ...";
$res = mysqli_query($sql);
while ($row = $res->fetch_assoc())
{
...
}
(Hoppas det blev rätt; är ovan vid mysqli.)
Sv:mysqli_fetch_row() - problem
<?php
$iid=$_GET['iid'];
$top=$_GET['top'];
$conn_id=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli="SELECT Amne,namn,epost,Inlagg,datum FROM Inlagg WHERE iid= $iid";
$result=mysqli_stmt_execute();
//$svamne=mysqli_result($result,"Amne");
if (empty($top)) {
$top=$iid;
}
mysqli_error($conn_id);
?>
<table border="1" width="300" cellpadding="3">
<tr><td>Ämne: <?=$svamne?></td></tr>
<tr><td><br><ul> <?=mysqli_result($result,"inlagg")?><br>
<br>
">=mysqli_result($result,"namn")?>, <?=mysqli_result($result,"datum")?>
</ul></td></tr>
</table>
<?php
$conn_id=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli="SELECT * FROM Inlagg WHERE pid= $iid ORDER BY datum DESC";
$result=mysqli_stmt_execute( $result);
echo "<ul>";
while ($row = mysqli_fetch_assoc($result)){
// while ($rad = $result-> fetch_assoc ()) (
$svar =mysqli_result($result,"iid");
$samne =mysqli_result($result,"amne");
$snamn =mysqli_result($result,"namn");
$sdatum =mysqli_result($result,"datum");
visa_svar($svar,$samne,$snamn,$sdatum);
}
echo "</ul><hr>";
visa_form($svamne);
function visa_svar($svar,$samne,$snamn,$sdatum) {
global $top;
mysqli_error($conn_id);
?>
<li>=$samne?> av <?=$snamn?>, <?=$sdatum?></li>
<?php
$conn_id2=mysqli_connect("localhost","anders","user64");
mysqli_select_db($conn_id, "bloggen");
$mysqli2="SELECT * FROM Inlagg WHERE pid= $svar ORDER BY datum DESC";
$result2=mysqli_execute($conn_id2,$sql2);
while(mysqli_fetch_row($result2)) {
?><ul><?php
$svar =mysqli_result($result2,"iid");
$samne =mysqli_result($result2,"amne");
$snamn =mysqli_result($result2,"namn");
$sdatum =mysqli_result($result2,"datum");
visa_svar($svar,$samne,$snamn,$sdatum);
mysqli_error($conn_id);
?></ul><?php
}
}
function visa_form($svamne){
global $iid, $top;
?> Svara:<br>
<form method="post" action="insert.php" OnSubmit="return skicka_OnClick()" name="matain">
Ämne:<br><input type="text" value="Svar: <?=$svamne?>" name="amne"><br>
Namn:<br><input type="text" name="namn"><br>
Epost:<br><input type="text" name="epost"><br>
Svar:<br><textarea name="inlagg"></textarea><br>
<input type="hidden" name="iid" value="<?=$iid?>">
<input type="hidden" name="top"value="<?=$top?>">
<br> <input type="submit" value="Skicka"> <input type="reset" value="Återställ">
<br>
</form><?php
}
?>
Och tabeller och annat skrivs ut, men följande fel kommer .
Warning: mysqli_stmt_execute() expects exactly 1 parameter, 0 given in C:\wwwroot\blogg_proj\template\pro_2\forum\las.php on line 14
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, null given in C:\wwwroot\blogg_proj\template\pro_2\forum\las.php on line 39
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\wwwroot\blogg_proj\template\pro_2\forum\las.php on line 42
nu stämmer inte raderna på felen.Sv: mysqli_fetch_row() - problem
$mysqli="SELECT Amne,namn,epost,Inlagg,datum FROM Inlagg WHERE iid= $iid";
$result=mysqli_stmt_execute();
Du måste skicka in ett argument till mysqli_stmt_execute(). Argumentet skall vara en "prepared statement". Och en sådan måste du bereda särskilt.
Jag föreslår att du (eftersom du är nybörjare) kör med
$sql="SELECT Amne,namn,epost,Inlagg,datum FROM Inlagg WHERE iid= $iid";
$result=mysqli_query($sql);
Sv:mysqli_fetch_row() - problem
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wwwroot\blogg_proj\template\pro_2\forum\las.php on line 14Sv:mysqli_fetch_row() - problem
Men har fått börja titta på en annan lösning, i stället för att bygga om en kod som var avsedd för access från början.
Men får tacka för alla tips.
Det är väl inte riktigt om jag sätter löst på denna tråd, eller???.