#1 14. September 2011 Wert an DB übergeben. Folgendes. Möchte per Button in PHP nen Script ausführen, dass nen DB-Eintrag hochzählt. Dafür hab ich folgendes. HTML: <form method="post" target="_self"> <button type="submit" name="vote" value="<?php echo ($t1['ID']);?>">Ass on the left</button> <button type="submit" name="vote" value="<?php echo ($t2['ID']);?>">Ass on the right</button> </form> und bei PHP so PHP: // Anzahl der Bilder $r2 = mysql_query ( "SELECT * FROM Votes" ); $anzahl = mysql_num_rows ( $r2 ); $anzahlbilder = 76 ; ////////////////////////////////////////////////////////////////////////////////////// if( $anzahl < $anzahlbilder ){ for( $i = $anzahlbilder ; $i < $anzahl ; $i ++){ $sql0 = "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), " ; } } // Auswahl der 2 Zufallsbilder do{ $bildIDOne = rand ( 1 , $anzahl ); $bildIDTwo = rand ( 1 , $anzahl ); } while( $bildIDOne == $bildIDTwo ); $sql1 = 'SELECT ID FROM Votes WHERE ID = ' . $bildIDOne ; $sql2 = 'SELECT ID FROM Votes WHERE ID = ' . $bildIDTwo ; $bild1 = mysql_query ( $sql1 ); $bild2 = mysql_query ( $sql2 ); if ( false == $bild1 ) die( "SQL: $sql1 " . mysql_error ()); if ( false == $bild2 ) die( "SQL: $sql2 " . mysql_error ()); $t1 = mysql_fetch_array ( $bild1 ); $t2 = mysql_fetch_array ( $bild2 ); //print_r($t1); ?> allerdings wirds in der db nicht hochgezählt und ich weiß nich woran das liegt meine datenbank heißt skyrim1337 und meine tabelle Votes. und die spalte die hochgezählt werden soll auch Votes. ich denk mal es liegt daran, dass ich nich eingebe welche ID da genommen ewrden soll oder?! Wie übergebe ich die ID denn?! Ist ja immer eine andere. Und immer zwei verschiede. :angry: + Multi-Zitat Zitieren
#2 14. September 2011 AW: Wert an DB übergeben. PHP: if( $anzahl < $anzahlbilder ){ for( $i = $anzahlbilder ; $i < $anzahl ; $i ++){ $sql0 = "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), " ; } } $anzahl = 20; $anzahlbilder = 76; PHP: if( 20 < 76 ){ // Passt er geht weiter zur For-Schleife for( $i = 76 ; $i < 20 ; $i ++){ // Setze $i = 76 und führe Schleife aus, solange $i kleiner als 20 ist $sql0 = "INSERT INTO `skyrim1337`.`Votes` (`ID`, `Votes`) VALUES (NULL, \'0\'), " ; } } $i ist aber nie kleiner als 20.. Und wenn das andersrum ist, also $anzahl ist größer als $anzahlbilder geht er gar nicht bis zur for-schleife.. MfG + Multi-Zitat Zitieren
#3 14. September 2011 AW: Wert an DB übergeben. Sorry, hab den falschen Code-Abschnitt gescickt. Den du da siehst war nur ein Versuch automatisch Datenbankeinträge zu generieren. -.- Sorry, hier ist der richtige Abschnitt PHP: $voting = $_POST [ 'vote' ]; if ( $_POST [ 'vote' ]) { $sql1337 = 'UPDATE Votes Set Votes = Votes +1 WHERE ID = $voting' ; $res = mysql_query ( $sql1337 ); } Nochmal was rumprobiert. So läuft es auch nicht :x PHP: $sql1337 = "UPDATE Votes SET Votes = Votes + 1 WHERE ID='" . $voting . "'" ; + Multi-Zitat Zitieren
#4 15. September 2011 AW: Wert an DB übergeben. PHP: $sql1337 = 'UPDATE Votes Set Votes = Votes +1 WHERE ID = $voting' ; das kann nicht funktionieren. bitte lesen: PHP: Strings - Manual PHP: $sql1337 = "UPDATE Votes SET Votes = Votes + 1 WHERE ID='" . $voting . "'" ; sollte funktionieren, ist aber unsicher. und dass du jetzt zwar die richten anführungszeichen verwendest, aber die variable dennoch über den concat-operator einbindest lass ich mal unkommentiert. bitte lesen: PHP: SQL Injection - Manual ------ zum problem: PHP: var_dump - Manual wenn du alle drei links gelesen und verstanden hast, kannst du gerne wieder kommen und das thema schließen + Multi-Zitat Zitieren
#5 15. September 2011 AW: Wert an DB übergeben. Jap, Thema kann geschlossen werden. Ich mach gerade aber weiter. Und zar möchte ich zwei Bilder anhand ähnlichem Elo-Wert auswählen. Also das erste Bild wird zufällig geladen und das zweite soll dann nen ungefähr gleichen Elo-Wert haben. Würde dieser Code dafür hier funktionieren? PHP: $bildIDOne = rand ( 1 , $anzahl ); $sqlx = "SELECT elo FROM VOTES WHERE ID =" . $bildIDOne . "" ; $sqly = "SELECT ID From Votes WHERE elo > elo_" . $bildIDOne . " AND elo < elo_" . $bildIDOne . " > 500" ; $bild2 = mysql_query ( $sqly ); Bin nämlich gerade in der Uni und kanns nicht austesten. + Multi-Zitat Zitieren