php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
ID Problem!


 
AndyR
06-08-2003, 22:21 
 
Hi! Also ich habe mich im Forum umgeschaut und nichts gefunden und deshalb jetzt meine frage. Ich habe ein Problem und hoffe mir kann jemand helfen. Ich habe ein kleines mysql basiertes script geschrieben in den ich daten eingebe die in meine Datenbank geschrieben werden. Diese Daten kann man nachträglich auch wieder über die ID die sie besitzen wieder löschen. Und genau hier liegt das Problem: Daten einfügen und wieder löschen funktioniert problemlos genauso wie das automatische erstellen der ID die über "auto_increment" automatisch um eins höher gesetzt wird bei jedem neuen Datensatz. Wenn ich jetzt 15 einträge habe habe ich 15 ID`s von 1-5 doch wenn ich jetzt alle wieder lösche und einen neuen Datensatz einfüge Hat der dann die ID 16(?) obwohls der "erste" Eintrag ist. Ich will das wenn ìch einen Datensatz lösche auch die ID gelöscht wird und wenn ich eine leere Datenbank habe es auch keine ID gibt und er wieder bei 1 beginnt. Wo liegt das Problem? Würde mich um Hilfe freuen.

MFG Andy

EDIT: Sorry falsches Forum ist mir grad aufgefallen.

 
bo2k
06-08-2003, 22:43 
 
dann ist "auto_increment" nicht das was du brauchst!

deaktiviere diese funktion!

du mußt dann die id's selber vergeben.
das bedeutet aber nun muß jedes mal bevor ein datensatz erstellt werden kann ein zusätzliches query abfragen muß wie viele datensätze in deiner tabelle existieren.

dafür kannst du den SQL befehl count( feld) benutzen

jetzt meine frage ?
warum ist es schlimm wenn die id's nicht einzigartig sind ?

 
mrhappiness
06-08-2003, 22:54 
 
Original geschrieben von bo2k
warum ist es schlimm wenn die id's nicht einzigartig sind ? weil er wahrscheinlich etwas gästebuchähnliches gemacht hat und die id als beitragsnummer missbraucht

der primärschlüssel einer tabelle sollte bei sowas keine inhaltliche bedeutung haben

du kannst für sowas auch nen zähler bei der ausgabe mitlaufen lassen

 
bo2k
06-08-2003, 23:13 
 
genau deswegen wollte ich das wissen :)

 
AndyR
06-08-2003, 23:38 
 
Ne daran liegts nicht. Das ist mein erstes script und ich will bei einer leeren Datenbank angezeigt bekommen das noch keine eintraege vorhanden sind. Also mit "if". Wen keine Id vorhanden ist dann zeige mir an das "Noch keine eintraege vorhanden". Und fuer mich als Newbie ist die einzige möglichkeit das auszugeben wenn es noch keine ID gibt und mein jetziges Problem ist das über auto_increment immer ne id da ist. verstanden was ich meine?? Hoffe doch ;-)

 
BloodReaver
07-08-2003, 00:09 
 
les doch einfach ALLES in der tabelle in ein array (also alle ids) wenn das arraycount 0 zurück gibt is die db warscheinlich leer :D

denke mal so sollte es für dich gehn...

 
AndyR
07-08-2003, 00:17 
 
Danke fuer den tipp.
Hab aber noch ne frage. Hab das MANUAL durchstöbert doch nichts gefunden. In diesem Code zb. ....
if ($test == "")
{
echo "Nichts vorhanden";
}
else
....
will ich sagen das wenn die variable $test=leer ist er den Text ausgeben soll. Hab mal irgendwo gelesen das man das durch zwei "" bestimmt. 2 Gänsefüßchen bedeutet LEER. Aber das funktioniert nicht. Wieso? Oder ist das gar nicht wahr und das wird anders bestimmt?? MFG Andy

 
BloodReaver
07-08-2003, 00:20 
 
hm ging ma das hat aber nix mit den gänsefüsschen zu tun sondern damit sagst du halt normal

if ($test = "bla")

und wenn du halt bla weg lässt, dann währ das leer logischerweise... aber das geht glaubich nimmer... nimmst du einfach
if(empty($test)) { }

 
AndyR
07-08-2003, 00:34 
 
Ok habs probiert aber wieso funktioniert das so nicht?
.....
$read = mysql_query($lesen);
while ($row = mysql_fetch_object($read))
{
if (empty($row->name))
{
echo "Es sind noch keine Eintraege vorhanden!";
}
else
....

Der zeigt mir nur den Text an wenn was in der Datenbank aber ich wills ja umgekehrt.

????

Mfg

 
BloodReaver
07-08-2003, 00:40 
 
Original geschrieben von AndyR
Ok habs probiert aber wieso funktioniert das so nicht?
.....
$read = mysql_query($lesen);
while ($row = mysql_fetch_object($read))

Du willst ja schomal kein object sondern ein array! darum _fetch_array!

{
if (empty($row->name))
{
echo "Es sind noch keine Eintraege vorhanden!";
}
else


das wollen wir ja au net da wir ja nur ne ausgabe wollen wenn nix drin is, also das array leer is! darum:


$array = mysql_fetch_array($read);
if(count($array) = '0') {
echo 'nix da!';
}
müsste man etz proben ob das array bei ner leeren db au wirklich leer is! oder ob es überhaupt ein array is! wenns kein array is, dann kommt bei count 1 raus! ich hoff meins geht, aufjedenfalls währs so logisch

 
mrhappiness
07-08-2003, 08:09 
 
$read=mysql_query($lesen);
$anzahl=mysql_num_rows($read);
echo 'Anzahl Einträge: '.$anzahl;


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:46 Uhr.