2016-07-06 21 views
0

I alle Erfahrungen von job_id 1, Echo sein müssen, wenn ich meinen Code ausführen gibt sie Fehler folgendeWie Warnung beheben: mysqli_query() erwartet zwei Parameter-String

Warnung: mysqli_query() erwartet Parameter 2 sein string,

hier ist mein Code,

<?php include_once 'db.php'; ?> 

<form action='update.php' method='post'> 
    <table border='1'> 
     <?php 
      $sql = mysqli_query($con,"SELECT *FROM `experience` WHERE job_id=1"); 

      $result= mysqli_query($con,$sql); 
      if ($result) { 
       // The query was successful! 
      } 
      else { 
       // The query failed. Show an error or something. 
      } 
      while($row = mysqli_fetch_array($result)){ 
       echo "<tr>"; 
       echo "<td><input type='hidden' name='experi_id[]' value='".$row['exp_id']."' /></td>"; 
       echo "<td>Experince :<input type='text' name='experi[]' value='".$row['experience']."' /></td>"; 
       echo "<td>year :<input type='text' name='year[]' value='".$row['year']."' /></td>"; 
       echo "<td>job id :<input type='text' name='job_id[]' value='".$row['job_id']."' /></td>"; 
       echo "</tr>"; 
      } 
      echo "<input type='submit' name='update' value='UPDATE' />"; 
      mysqli_close($con); 
     ?> 
    <table> 
</form> 

Wie behebe ich den Fehler?

+1

verwenden Ich bin nicht in der Lage, Ihren Code sehen –

Antwort

0

Sie können

$result=mysqli_query($con,$sql);

Benennen Sie Ihre $sql-$result entfernen.

Grund: Sie versuchen, die Ressource, die von ersten mysqli_query zu Ihrem zweiten mysqli_query Aufruf genestet wurde. Im zweiten Aufruf von mysqli_query ist der zweite Parameter keine Zeichenfolge, sondern eine Ressource, die von Ihrem ersten Aufruf zurückgegeben wurde.

+0

Ja es funktioniert Vielen Dank :) – Deepashika

+0

alle gut .... :) – Deepak

+1

@ Deepashika, was passiert, wenn Ihre Anfrage zu irgendeinem Zeitpunkt fehlschlägt. Sie werden in großen Schwierigkeiten wegen 'while' außerhalb' if-else' condition.So gesetzt 'while' innerhalb' if' wie ich schlug –

0
<?php include_once 'db.php'; ?> 
<form action='update.php' method='post'> 
    <table border='1'> 
    <?php $sql=mysqli_query($con, "SELECT *FROM `experience` WHERE job_id=1"); if ($sql) { // The query was successful! } else { // The query failed. Show an error or something. } while($row=mysqli_fetch_array($result)){ 
    echo "<tr>"; echo "<td><input type='hidden' name='experi_id[]' value='".$row[ 'exp_id']. "' /></td>"; echo "<td>Experince :<input type='text' name='experi[]' value='".$row[ 'experience']. "' /></td>"; echo 
    "<td>year :<input type='text' name='year[]' value='".$row[ 'year']. "' /></td>"; echo "<td>job id :<input type='text' name='job_id[]' value='".$row[ 'job_id']. "' /></td>"; echo "</tr>"; } echo "<input type='submit' name='update' value='UPDATE' />"; mysqli_close($con); ?> 
    <table> 
</form> 
0

Machen Sie die Abfrage sauber. Versuchen:

$sql = "SELECT *FROM `experience` WHERE job_id=1"; 

$conn = connection in your DB file. 

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

Und versuchen, das Array von $ Ergebnis zu holen.

2

Sie müssen zweite mysqli_query() entfernen und legen Sie Ihren while Code in if wie unten: -

<form action='update.php' method='post'> 
    <table border='1'> 
     <?php 
      $result = mysqli_query($con,"SELECT *FROM `experience` WHERE job_id=1"); 

       //$result= mysqli_query($con,$sql); // since query is done already in previous statement so not needed second time 
      if ($result) { 

       while($row = mysqli_fetch_array($result)){ 

        echo "<tr>"; 
         echo "<td><input type='hidden' name='experi_id[]' value='".$row['exp_id']."' /></td>"; 
         echo "<td>Experince :<input type='text' name='experi[]' value='".$row['experience']."' /></td>"; 
         echo "<td>year :<input type='text' name='year[]' value='".$row['year']."' /></td>"; 
         echo "<td>job id :<input type='text' name='job_id[]' value='".$row['job_id']."' /></td>"; 
        echo "</tr>"; 
       } 
       echo "<input type='submit' name='update' value='UPDATE' />"; 
      }else { 
       echo "following error occurred:-".mysqli_error($con); // check the exact error happen while query execution so that fix can be possible easily 
      }  
      mysqli_close($con); 
     ?> 
    <table> 
</form> 

Hinweis: - obwohl nach else Ihre while in obigem Fall gearbeitet, aber wenn in jedem Fall Ihrer Abfrage fehlgeschlagen, erhalten Sie viel von undefined indexes Fehler. Dank

0

machen den Code zu optimieren, besser Sie

mysqli_query($query) or die('Error in Query'.mysqli_error($con)); 
Verwandte Themen