Πρόβλημα με Insert σε βάση δεδομένων

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από hik-hok » 01 Δεκ 2003 21:06

Αν και νομίζω ότι έχει απαντηθεί έψαξα όλα τα θέματα στον τομέα php και στον sql και δεν βρήκα απάντηση.

Λοιπόν:

Όταν κάνω INSERT σε μία γραμμή στην βάση δεδομένων γιατί δεν πάει στην επόμενη ?
π.χ.

Κώδικας: Επιλογή όλων

 $sql = "INSERT INTO pinakas (time,ip,agent,url,ref,sess) VALUES ('$dtime','$ip','$agent','$url','$ref','$sess')";
$result = mysql_query($sql);
τί λείπει ?

ευχαριστώ :wink:

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από cordis » 01 Δεκ 2003 21:30

ποιο να παει στην επόμενη?
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από hik-hok » 01 Δεκ 2003 21:34

τα στοιχεία πανε στην πρώτη γραμμή (row) και όσες φορές και άν εκτελεστεί η εντολή δέν δημιουργείται δεύτερη γραμμή.

Οταν σβύσω την πρώτη γραμμή γεμίζει με τα πρώτα στοιχεία και πάλι δέν δημιουργείται δεύτερη :(

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από cordis » 01 Δεκ 2003 21:37

ποιο ειναι το primary key του πινακα?
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από hik-hok » 01 Δεκ 2003 21:42

το id

πρέπει να κάνω INSERT και στο primary key?

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από cordis » 01 Δεκ 2003 21:49

oui....

αν ειναι autoincrement βαλε null...

Κώδικας: Επιλογή όλων

$sql = "INSERT INTO pinakas (id,time,ip,agent,url,ref,sess) VALUES (null,'$dtime','$ip','$agent','$url','$ref','$sess')"; 
$result = mysql_query($sql);
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από hik-hok » 01 Δεκ 2003 21:50

ευχαριστώ κερνάω
Εικόνα

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από hik-hok » 01 Δεκ 2003 23:49

τελικά μου δούλεψε κάνοντας το:

Κώδικας: Επιλογή όλων

$pinakas="SELECT * FROM statistika";
$result=mysql_query($pinakas);
$num=mysql_numrows($result);
++$num;
$sql = "INSERT INTO statistika (id,time,ip,agent,url,ref,ses) VALUES '$num','$dtime','$ip','$agent','$url','$ref','$sess')";
$result = mysql_query($sql);
:o

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από cordis » 02 Δεκ 2003 00:04

λάθος τρόπος...

αν δεν το έχεις κάνει autoincrement το ID κάντο έτσι γιατί αλλιώς θα έχεις πρόβλημα εάν διαγράψεις κάποια ενδιάμεση γραμμή....

Κώδικας: Επιλογή όλων

$pinakas="SELECT max(id) FROM statistika"; 
$result=mysql_query($pinakas); 
list($num) = mysql_fetch_row($result);
$num++;
$sql = "INSERT INTO statistika (id,time,ip,agent,url,ref,ses) VALUES '$num','$dtime','$ip','$agent','$url','$ref','$sess')"; 
$result = mysql_query($sql);
αλλά και πάλι λάθος είναι γιατί εάν υποθέσουμε ότι πάει να γράψει δύο γραμμές ακριβός την ίδια στιγμή κάποια από τις δύο θα χαθεί....

η μόνη σωστή λύση είναι να αφήσεις στην MySQL να κάνει την δουλειά ορίζοντας το πεδίο ID ως autoincrement και βάζοντας null στο insert...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
GhostShip
Δημοσιεύσεις: 338
Εγγραφή: 30 Σεπ 2003 09:57
Τοποθεσία: Αθήνα

Πρόβλημα με Insert σε βάση δεδομένων

Δημοσίευση από GhostShip » 07 Δεκ 2003 00:55

Μπορώ να πω με βεβαιότητα οτι ο Γιάννης έχει απόλυτο δίκιο.

Ο πιο σωστός τρόπος όταν στήνεις μία βάση είναι να κάνεις auto-increment το πεδίο id σε κάθε πίνακα για να αφήνεις την βάση να διαχειρίζεται τις εγγραφές ώστε να αποφεύγεις καταστάσεις που ανέφερε ο Γιάννης...

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης