2016-04-20 10 views
1

Ich arbeite an einem Add-in-Warenkorb-Skript, für ein Schulprojekt, aber es verursacht mir einige Fehler.In den Warenkorb legen mit arrays druckt mysqli erros

Ich habe eine add.php und index.php-Datei, die zusammen arbeitet.

add.php wie folgt aussieht:

<?php 

    session_start(); 

    $servername = "localhost"; 
    $username = "root"; 
    $password = ""; 
    $dbname = "test"; 

    if (empty($_SESSION['kurv'])) { 
     $_SESSION['kurv'] = array(); 
    } 

    array_push($_SESSION['kurv'], $_GET['id']); 
    header("location: index.php"); 
?> 

in index.php Mein Skript, das die Elemente in Array setzen zeigt wie folgt aussieht:

<?php 

    $_SESSION['kurv'] = array(); 

    $DBConnect = new mysqli("localhost","root","","test"); 
    $arrayID = implode(',', $_SESSION['kurv']); 
    $sql = "SELECT * FROM produkter WHERE id IN ($arrayID)"; 
    $result = $conn->query($sql); 

    while($row = mysqli_fetch_assoc($result)) { ?> 
    <table> 
     <tr> 
      <td><?php echo $row2['titel'];?></td> 
      <td class="h"><?php echo $row2['pris'] . " kr.";?> <button class="knap"><a>-</a></button></td> 
     </tr> 
    </table> 
    <?php 

     } 
    ?> 

Aber aus irgendeinem Grund, den ich nicht erklären kann und zu beheben versucht hat, führt dies zu mir diese Fehler:

Warnung: mysqli :: query(): Kann nicht mysqli in C holen: \ xampp \ htdocs \ index.php on line 624

Warning: mysqli_fetch_assoc() erwartet Parameter 1 bis MySQLi_Result werden, null in C angegeben: \ xampp \ htdocs \ index.php on line 626

Can jemand bitte versuche mir das zu erklären, da ich in PHP noch ein bisschen neu bin?

+0

immer Code mit 'error_reporting (E_ALL)' am Anfang Ihrer PHP-Skripte verwenden. –

+0

Warum werden Klammern hinzugefügt? –

Antwort

0

Ihre Verbindung variabel ist

$DBConnect = new mysqli("localhost","root","","test"); 

SO DBConnect

$result = $DBConnect->query($sql); 

Statt $conn

$result = $conn->query($sql); 

Verwenden num_rows Ihre Anfrage Rückkehr re Wetter zu überprüfen, verwenden Sult oder nicht

$sql = "SELECT * FROM produkter WHERE id IN ($arrayID)"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 

    while ($row = mysqli_fetch_assoc($result)) { 
     ?> 
     <table> 
      <tr> 
       <td><?php echo $row2['titel']; ?></td> 
       <td class="h"><?php echo $row2['pris'] . " kr."; ?> <button class="knap"><a>-</a></button></td> 
      </tr> 
     </table> 
     <?php 
    } 
} else { 
    echo "NO result foumd"; 
} 

Um zu überprüfen, Fehler in Abfrage und Verbindung

/* check connection */ 
if ($DBConnect->connect_errno) { 
    printf("Connect failed: %s\n", $DBConnect->connect_error); 
    exit(); 
} 

if (!$DBConnect->query("SET a=1")) { 
    printf("Errormessage: %s\n", $DBConnect->error); 
} 

lesen http://php.net/manual/en/mysqli.error.php

+0

Hallo, danke. Dies löste einen der Fehler. Ich habe noch eine: –

+0

Welchen Fehler hast du ?? – Saty

+0

** Warnung: mysqli_fetch_assoc() erwartet Parameter 1 als mysqli_result, boolean in C: \ xampp \ htdocs \ index.php in Zeile 626 ** obwohl. Ich habe bereits einen Code, der überprüft, ob die Abfrage Ergebnisse liefert, nur nicht enthalten! –

Verwandte Themen