2017-03-10 1 views
0

동일한 데이터베이스 내에 두 번째 테이블을 만들었지 만 이번에는 오류가 발생합니다. 경고 : mysqli_fetch_assoc()은 매개 변수 1이 mysqli_result가 될 것으로 기대합니다. . on line 30 나는 PHP에 익숙하지 않다. 원하는 결과 : 다른 경우에는 새 이름이 아직 존재하지 않는 경우 항목 또는 업데이트, 새로운 점수가 처음 .PHP 스크립트가 동일동일한 데이터베이스의 두 번째 테이블을 참조하는 방법

<?php> 
// score speichern 
$zahl = $_POST["text2"]; 

// name speichern 
$text = $_POST["text1"]; 
if($text == null){ 
    echo("Keinen Text empfangen."); 
} 


// verbindung zu db herstellen 
$db = @new mysqli("mysql.hostinger.de", "u465976419_k", "8o3SCoZLzh36", "u465976419_k"); 
if($db->connect_error){ 
    die("<pre>".$db->connect_error."</pre>"); 
} 

$num = $sql->num_rows; // anzahl der Datensätze 


#mysqli_query($db, "DELETE FROM Rangliste2 WHERE name = 'a'"); 

$neuezahl = FALSE; 
$existiertkleiner = FALSE; 
$existiert = FALSE; 

// neuen sql eintrag 
if($zahl != null){ 
    //$namen = mysqli_query($db, "SELECT name FROM Rangliste2"); 
    $nameexistiert = mysqli_fetch_assoc(mysqli_query($db, "SELECT score FROM Rangliste2 WHERE name='$text'")); 
    $dbscore= $nameexistiert['score'];          
    if($dbscore>0){ 
     if($zahl>$dbscore){ 
      mysqli_query($db, "DELETE FROM Rangliste2 WHERE name = '$text'"); 
      mysqli_query($db, "INSERT INTO Rangliste2 (name, score) VALUES ('$text', $zahl)"); 
     } 
    }else{ //neuer eintrag eines neuen spielers 
     mysqli_query($db, "INSERT INTO Rangliste2 (name, score) VALUES ('$text', $zahl)"); 
    } 
} 


//sql abfrage 
$sql = $db->query("SELECT * FROM Rangliste2y ORDER BY score DESC"); 
$num = $sql->num_rows; // anzahl der Datensätze 
if($num > 0){ 
    while($row = $sql->fetch_object()){ 
     echo ("$row->name:  $row->score\n"); 
    } 
} 
?> 

높은 경우. 'Rangliste2'대신에 'Rangliste'두 테이블이 있습니다 ... 다른 사람이 완벽하게 작동하는 동안 어떻게 하나의 오류를 줄 수 있습니까? 도와주세요. 모든 대답에 감사드립니다.

+0

안녕하세요 여기에 추가합니다. 먼저 SQL 삽입과 준비된 문에 대해 배우려면 http://bobby-tables.com을 살펴 봐야합니다. 당신이 당신의 코드를 작성한 방식으로, 당신의 데이터베이스는 5 초 안에 정말로 큰 노하우없이 해킹 될 수 있습니다. 단지 링크 된 페이지를 방문하면 당신이 의미하는 바를 이해하게 될 것입니다. 사용자 입력을 사용하여 실행중인 쿼리가 있으면 준비된 문을 항상 사용해야합니다. 결코 (예를 들어'$ text')처럼 SQL 쿼리에 직접 사용자 입력을 넣지 마십시오. 또한 DB에 connet 한 후에는 $ num = $ sql-> num_rows;'- 왜? – Twinfriends

답변

2

오류가 두 변수 $의 nameexistiert에 대한 테이블 이름에 있습니다 .. SELECT score FROM Rangliste2 및 $ SQL SELECT * FROM Rangliste2y y를

+0

네 오른쪽! 감사! 또 다른 오류가 있었고 din't 내 첫 번째 tho 해결할 수 없습니다. – krissini

관련 문제