Προς το περιεχόμενο
  • 0
Συνδεθείτε  
grip_v

ερωτηση σε php

Ερώτηση

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

κανω μια εργασια σε 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>

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

11 απαντήσεις σε αυτή την ερώτηση

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

  • 0

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

 

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

ευχαριστω πολυ για τις απαντησεις σας αλλα δυστυχως δεν εφτιαξε ακομα.. αυτο που κανει ειναι οτι προσθετει την τιμη του τελευταιου 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>

    

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Για έλεγξε μια την τιμή των παρακάτω μεταβλητών $update και $rows['barcode'].Μήπως πρέπει στο post να περάσεις και άλλα στοιχεία εκτός από το quantity?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

μα το quantity ειναι αυτο που θελω να κανει βαζει ο χρηστης και να παιρνει σαν εισοδο η php..

η κανω λαθος???

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Φίλε 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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

Νομίζω είναι οφθαλμοφανές το τι αλλαγές πρέπει να κάνεις

  • Like 1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

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

 

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.