php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2005, 16:22  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard mysql_num_row unde Index bleibt trotzdem 0 in der DB

Hallo!

Ich hab da ein Problem. Ich möchte einen Index in meiner Datenbank erstellen. Dazu verwende ich mysql_num_rows. Die Variable $num2 soll dann der Index sein, der in die Datenbank in der Spalte "Index erscheinen soll. Nun ist das Problem, dass der Index immer 0 ist in der Datenbak, obwohl $num2 beispielsweise 4 ist, was ja auch korrekt ist.
Ihc habe da mal die wichtigsten Codeschnipsel beilgelegt.
PHP-Code:
<?
$host
="localhost";
$user="root@localhost";
$pw="";
$database="Studentenumfrage";

 
$sql "INSERT INTO `umfragedaten` (`Index`,`Frage1`, `Frage2_1_1`, `Frage2_1_2`)";
 
$sql .= " VALUES ('$num2','$x1', '$x2', '$x3')";
 
$db=mysql_connect($host,$user,$pw);
       if(!
$db)
         echo 
mysql_error()."
"
;
         
       
$cdb=mysql_select_db($database);
       if(!
$cdb)
         echo 
mysql_error()."
"
;
     
         
#echo "Eintrag in die Datenbank num=$num
";
          
          $res2=mysql_query("
SELECT from umfragedaten", $db); 
          $num2 = mysql_num_rows($res2);
          $num2++;
          echo "
num2=$num2
"; 
         $res=mysql_query( $sql, $db);
         if(!$res);
           echo mysql_error()."
";
           
         
         $num = mysql_affected_rows();
         if ($num>0)
          echo "
num$num Datensatz drinne
";
?>
Danke für die Antwort
nieselfriem ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.07.2005, 16:31  
Gast
 
Beiträge: n/a
Standard

hm, das syntax hilighting zeigt, dass dieser Code nie gelaufen ist.

a) Was willst Du mit dem Wert erreichen?
b) Wo wird $num2 in einer Abfrage verwendet?
 
Alt 30.07.2005, 16:35  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

doch der Code ist gelaufen, da ich aber nicht alle Variablen reinknallen (162 an der Zahl) wollte hab ich ihn verkürzt und dabei ein " vergessen. Das $num2 soll oben in der sql_Anweisung verwendet werden und dort in die Spalte "Index" der Tabelle eingetragen werden. Aber oben ist ja nur die Strin defenition un diese wird ja erst in der mysql_query also nach der Zuweisung von $num2 verwendet.
nieselfriem ist offline  
Alt 30.07.2005, 16:38  
Gast
 
Beiträge: n/a
Standard

Zitat:
$num2 = mysql_num_rows($res2);
$num2++;
echo "num2=$num2
";
$res=mysql_query( $sql, $db);
Ich sehe hier nicht, wo der Wert von $num2 in die Abfrage wandert; passiert einfach nicht.

Trotzdem nochmal die Frage, was Du mit dem Wert eigentlich willst.
Was bezweckst Du damit?
Wozu soll dieser Wert dienen?
Ich bin mir ziemlich sicher, dass er überflüssig bis falsch ist.
 
Alt 30.07.2005, 16:46  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$sql = "INSERT INTO `umfragedaten` (`Index`,`Frage1`, `Frage2_1_1`, `Frage2_1_2`)";
$sql .= " VALUES ('$num2','$x1', '$x2', '$x3')";
Ihc möchte die Tabelle als CSV-Datei ausgeben und da möchte ich gerne einen Index von 1 bis ... haben. Deshalb möchte ich einen fortlaufenden index in einer Tabellenspalte setzen.
nieselfriem ist offline  
Alt 30.07.2005, 16:57  
Gast
 
Beiträge: n/a
Standard

öhem.... das ist dann aber ein fundamentales Missverständnis der Vorgänge.

Was passiert bei diesem Miniskript?
PHP-Code:
<?php
$t 
"123 $var xyz";
$var '...';

echo 
$t;
?>
Und das vergleiche jetzt mal mit Deinem Skript.


Diesen Wert nicht selbst von Hand in der Tabelle setzen. Das macht Dir nur Probleme. Als Beispiele seien hier nur: Löschen von Datensätzen und Nebenläufigkeiten/race conditions genannt.
Erstelle Dir ein Feld dessen nächster Wert automatisch hochgezählt wird. Bei mysql heissen die Dinger auto_increment.
 
Alt 30.07.2005, 17:04  
Erfahrener Benutzer
 
Registriert seit: 28.11.2004
Beiträge: 305
nieselfriem ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Alles klar. Habe mir so was Ähnliches langsam gedacht. Ich dachte aber, dass die Variable $sql erst nach dem $num2 verwendet wird. hätte das keinen Einfluss. Gute ich danke Dir, dass hat mir sehr weitergeholfen und ein Stückerl vorangebracht.

Gruß niesel
nieselfriem ist offline  
Alt 30.07.2005, 17:30  
Gast
 
Beiträge: n/a
Standard

Sehr schön.
Aber trotzdem: nicht selbst so einen Wert in der Tabelle eintragen; Du machst Dich nur unglücklich damit.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Index zerschossen Tommi PHP Tipps 2008 5 13.06.2008 18:04
Notice: Undefined index Kein Genie PHP Tipps 2008 5 23.04.2008 17:40
Prototype Ajax Array Datenmüll notyyy HTML, Usability und Barrierefreiheit 2 08.04.2008 10:57
Array index updaten obi PHP Tipps 2008 4 28.11.2007 15:08
Index über 2 Spalten, unique mAy^daY Datenbanken 5 09.08.2007 16:02
Index vom Array zurücksetzen kampfnickel PHP Tipps 2007 6 08.01.2007 17:24
ftp account erstellen in confixx umgebung PHP-Fortgeschrittene 5 15.02.2006 20:41
2 verschachtelte while Schleifen. Großes Performanceproblem Datenbanken 3 30.05.2005 12:52
Undefined index: PHP Tipps 2005 12 18.05.2005 16:13
Fehlermeldung undefined index: 14 Niedi PHP Tipps 2005 2 22.04.2005 11:40
Undefined index PHP Tipps 2005 5 05.02.2005 14:57
[Erledigt] Elementare Frage: Schneller durch Index? - Bin ratlos! Datenbanken 1 16.12.2004 05:23
Undefined index: USERNAME PHP Tipps 2004-2 2 07.12.2004 17:47
Undefined index: PHP Tipps 2004 6 15.09.2004 12:00
wie definiert man die index? PHP Tipps 2004 4 09.06.2004 14:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_num_row, 2. wozu dienen indizes in einer datenbank?

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.