Προς το περιεχόμενο

ερωτηση σε php


grip_v

Προτεινόμενες αναρτήσεις

Καλησπερα σε ολους,

κανω μια εργασια σε php  και εχω να φτιαξω ενα πινακα ο οποιος σε μια στηλη πρεπει να παρουσιαζει καποια στοιχεια της βασης μου (συγκεκριμενα τα προιοντα "products"), σε αλλη στηλη να εχει ενα textbox οπου θα βαζει ο χρηστης μια τιμη και στο τελος ενα κουμπι οπου θα παιρνει τη τιμη αυτη και θα τη προσθετει στην υπαρχουσα τιμη (συγκεκριμενα στο πινακα μου στη "quantity") που αντιστοιχει στο καθε προϊόν. Με λιγα λογια θα κανει update τη τιμη αυτη..

 

το εχω δουλεψει λιγακι αλλα εχω το εξης προβλημα..οταν παταω το submit βαζει σε ολα τα προϊόντα το αθροισμα των καταχωρισεων του χρηστη.. παραθετω το κωδικα..Μπορειτε να βοηθησετε??

<?php error_reporting(E_ERROR | E_WARNING | E_PARSE);
?>
<!DOCTYPE html>
 <html>
 
  <body>
  	<div id='user' align='center'>
  		
    <h3>Παρακαλώ συμπληρώστε τη φόρμα νέας προμήθειας</h3>
    
<table border="1">
<tr >
<th>ΠΡΟΪΟΝΤΑ</th>
<th>ΛΗΦΘΕΙΣΑ ΠΟΣΟΤΗΤΑ</th>
</tr>

<?php
$database = "";                                   // the name of the database.
$server = "";                                  // server to connect to.
$db_user = "";                                    // mysql username to access the database with.
$db_pass = "";                                      // mysql password to access the database with.
$table = "products";                                    // the table that this script will set up and use.
$link = mysql_connect($server, $db_user, $db_pass);
mysql_select_db($database,$link);
$show= mysql_query("SELECT description FROM products");
while ($rows = mysql_fetch_array($show)){
  echo '<tr>';
  echo '<th>'.$rows['description'].'</th>';
  echo '<td>';
  echo '<form action="" method="post">';
  echo '<input type="text" name="quantity" size="25">';
  echo '</td>';
  
  if(isset($_POST['quantity'])) {
  $quantity = $_POST["quantity"]; 
}
  if($quantity){
    $update= "UPDATE products SET quantity=quantity+'$quantity'" or die (mysql_error());
    $run=mysql_query($update);
  }
  echo '</tr>';
}

?>
</table>
<input type="submit" name="submit" value="Υποβολή">
</form>
</div>

</body>
</html>

ευχαριστώ εκ των προτέρων...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

πρέπει να έχεις στη βάση σου κάποιο κλειδί για να μπορείς να αναφέρεσαι σε μια συγκεκριμένη εγγραφή.. εκτός και αν είναι μοναδικό το description  που κάνεις select..

 

(αν είναι θα γίνει "UPDATE `products` SET `quantity`=quantity+'$quantity' WHERE `description` = '{$rows['description']}';" )

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ευχαριστω πολυ για τις απαντησεις σας αλλα δυστυχως δεν εφτιαξε ακομα.. αυτο που κανει ειναι οτι προσθετει την τιμη του τελευταιου product με την υπαρχουσα και την καταχωρει σε ολα τα αλλα products..ενω αυτο που πρεπει να κανει ειναι να κανει update καθε τιμη ξεχωριστα..
υποθετω οτι το προβλημα πρεπει να ειναι στη while..
παραθετω ξανα το κωδικα:


<?php error_reporting(E_ERROR | E_WARNING | E_PARSE);
?>
<!DOCTYPE html>
 <html>
  
    <h3>Παρακαλώ συμπληρώστε τη φόρμα νέας προμήθειας</h3>
    
<table border="1">
<tr >
<th>BARCODE</th>
<th>ΠΡΟΪΟΝΤΑ</th>
<th>ΛΗΦΘΕΙΣΑ ΠΟΣΟΤΗΤΑ</th>
</tr>

<?php
$database = "";                                   // the name of the database.
$server = "";                                  // server to connect to.
$db_user = "";                                    // mysql username to access the database with.
$db_pass = "";                                      // mysql password to access the database with.
$table = "products";                                    // the table that this script will set up and use.
$link = mysql_connect($server, $db_user, $db_pass);
mysql_select_db($database,$link);
$show= mysql_query("SELECT barcode, description FROM products");
while ($rows = mysql_fetch_array($show)){
  echo '<tr>';
  echo '<td>'.$rows['barcode'].'</td>';
  echo '<th>'.$rows['description'].'</th>';
  echo '<td>';
  echo '<form action="" method="post">';
  echo '<input type="text" name="quantity" size="25">';
  echo '</td>';
  
  if(isset($_POST['quantity'])) {
  $quantity = $_POST["quantity"]; 
}
  
  if($quantity){
    $update= "UPDATE products SET quantity = quantity +'$quantity' WHERE barcode = '{$rows['barcode']}'" or die (mysql_error());
    $run=mysql_query($update);
  }
  echo '</tr>';
}

?>
</table>
<input type="submit" name="submit" value="Υποβολή">
</form>
</div>

</body>
</html>

    

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κοιτα λίγο τον HTML κώδικα της σελίδας σου?πόσα <input type="text" name="quantity" size="25"> δηλαδή textboxes έχεις και με τι όνομα.Επίσης το $rows['barcode'] έχει το σωστό barcode που βρίσκεται στην ίδια γραμμή του "πίνακα" σου με το textbox που έβαλες το καινούριο quantity?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φίλε grip, έχεις δύο σημαντικά σφάλματα:

  • Ανοίγεις 15 φόρμες, αλλά κλείνεις μόνο τη τελευταία
  • Κάνεις update ΓΙΑ ΚΑΘΕ σειρά του πίνακα.

Πρόταση:

<?php if (ISSET($_POST['id']))
{
    $query="UPDATE table SET quantity=quantity+".$_POST['quantity']." WHERE id=".$_POST['id'];
    $res=mysql_query($query);
}
?>
<table>
<?php while ($rows = mysql_fetch_array($show)) : ?>
<tr><td>id</td><td>
     <form method='post'>
     <input type='hidden' name='id' value='<?php echo $rows['id'];?>' />
     <input type='text' name='quantity' />
     <input type='submit'>
     </form>
</td></tr>
<?php endwhile;?>
</table>
  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

αυτο σε ποιο σημειο πρεπει να μπει?

Ανοίγεις μια νέα σελίδα και μετά το <body> βάζεις τον κώδικα του dewn και μετά είσαι κομπλέ.

 

Υ.Γ. πρέπει να έχεις κάνει και την σύνδεση στην βάση σου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...